package com.yigerende.service.impl;



import com.yigerende.dao.YhuserRepository;
import com.yigerende.model.Yhuser;
import com.yigerende.service.YhuserService;
import com.yigerende.util.MD5Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yigerende.util.MD5Utils;

import java.util.Date;

@Service
public class YhuserServiceImpl implements YhuserService {

    //拿到dao的接口(这个接口用的jpa直接连接了数据库)
    @Autowired
    private YhuserRepository yhuserRepository;

    @Override
    public Yhuser checkUser(String username, String password) {
        //这里用了MD5加密（直接也把用户输入的密码进行加密传递到数据库就可以了）
        //已经拿到了用户输入的username和password，调用dao的接口传递给数据库查询
        Yhuser yhuser = yhuserRepository.findByUsernameAndPassword(username, MD5Utils.code(password));
        return yhuser;//返回查找到的User对象
    }


    //注册，新增用户
    @Transactional
    @Override
    public Yhuser saveYh(Yhuser yhuser) {
        //创建时间初始化
        yhuser.setCreateTime(new Date());
        //更新时间初始化
        yhuser.setUpdateTime(new Date());
        //把用户的密码加密后又传递回去，放到数据库
        yhuser.setPassword(MD5Utils.code(yhuser.getPassword()));
        return yhuserRepository.save(yhuser);
    }


    //注册判断账号有没有一样的
    @Override
    public Yhuser getYhByName(String name) {
        return yhuserRepository.findByUsername(name);
    }


    //修改个人信息
    @Transactional
    @Override
    public int updateYhu(Yhuser yhuser) {

        //更新时间初始化
        yhuser.setUpdateTime(new Date());
        return yhuserRepository.updateViews(
                yhuser.getNickname(),
                yhuser.getEmail(),
                yhuser.getAvatar(),
                yhuser.getUpdateTime(),
                yhuser.getId());
    }
}
